oracle中排序分析函数row

您所在的位置:网站首页 rank与row number的区别 oracle中排序分析函数row

oracle中排序分析函数row

2024-06-16 02:30| 来源: 网络整理| 查看: 265

row_number()产生的序号不会重复,即1、2、3... rank()产生的序号会重复,但是会跳号,出现1、2、2、4...的情况 dense_rank()产生的序号会重复,不会跳号,会出现1、2、2、3的情况

而普通的rownum是一个伪列,与你的order by是没有关系的

SELECT row_number() over(ORDER BY ac.check_number) rn ,ac.check_number payment_number ,rownum FROM ap_invoice_payments_all aip ,ap_checks_all ac WHERE 1 = 1 AND ac.status_lookup_code 'VOIDED' AND aip.check_id = ac.check_id AND aip.invoice_id = 994001 ORDER BY ac.check_number ASC;

image

你想要用order by + rownum排序的话就加一个子查询

SELECT payment_number ,rownum FROM (SELECT ac.check_number payment_number FROM ap_invoice_payments_all aip ,ap_checks_all ac WHERE 1 = 1 AND ac.status_lookup_code 'VOIDED' AND aip.check_id = ac.check_id AND aip.invoice_id = 994001 ORDER BY ac.check_number ASC)

image



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3